package cn.lecosa.spark.broadcast

package com.scala
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/**
 * scala实现广播变量（第一种：不可变类型）
 * 增加后的结果：2
    增加后的结果：4
    增加后的结果：6
    增加后的结果：8
    增加后的结果：10
 */
object BroadCastValue {
  def main(args:Array[String]):Unit={
    val conf=new SparkConf().setAppName("BroadCastValue1").setMaster("local[1]")
    //获取contex
    val sc=new SparkContext(conf)
    //创建广播变量
    val broads=sc.broadcast(3)//变量可以是任意类型
    //创建一个测试的List
    val lists=List(1,2,3,4,5)
    //转换为rdd（并行化）
    val listRDD=sc.parallelize(lists)
    //map操作数据
    val results=listRDD.map(x=>x*broads.value)
    //遍历结果
    results.foreach(x => println("增加后的结果："+x))
    sc.stop
  }
}